function Person (name,friend) {
  this.name = name
  this.friend = friend
}
// 比借用构造函数多一点原型链继承
Parent.prototype.getName = function () {
  console.log(this.name)
}

function Child (name,friend,number) {
  Person.call(this,name,friend)
  this.number = number
}

Child.prototype = new Person()

const child1 = new Child("jinge1",["jinge1"],12)
const child2 = new Child("jinge2",["jinge2"],13)

child2.friend.push('jjj')
child2.name = "jjj"
console.log(child1.name);
console.log(child2.friend);
console.log(child1);
console.log(child2);

// 优点：
//1.避免了引用类型的属性被所有实例共享

// 缺点：
// 1.Person函数至少被调用了两次
// 2.Child的原型上也会多出name和friend属性，只是值为undefind